package com.gopay.common.domain.cbrmb.customs.base;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

import com.gopay.common.constants.cbrmb.customs.NameSpace;

/**
 * 
 * @ClassName: SignedInfo
 * @Description: 签名基本信息节点
 * @author gd.cui
 * @date 2017年1月14日 上午10:26:47
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "guid", "appType", "appTime", "appStatus", "payCode", "payName", "payTransactionId",
		"orderNo", "ebpCode", "ebpName", "payerIdType", "payerIdNumber", "payerName", "telephone", "amountPaid",
		"currency", "payTime", "note" })
@XmlRootElement(name = "SignedInfo", namespace = NameSpace.NAMESPACE_CEB_URI)
public class SignedInfo {

	/**
	 * 规范化方法 Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
	 */
	@XmlElement(name = "CanonicalizationMethod", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String canonicalizationMethod;

	/**
	 * 签名算法 Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"
	 */
	@XmlElement(name = "SignedInfo", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String signatureMethod;

	/**
	 * 引用
	 */
	@XmlElement(name = "Reference", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String reference;

	/**
	 * 转换方式 Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"
	 */
	@XmlElement(name = "Transforms", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String transforms;

	/**
	 * 摘要算法 Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"
	 */
	@XmlElement(name = "DigestMethod", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String digestMethod;

	/**
	 * 摘要值
	 */
	@XmlElement(name = "DigestValue", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String digestValue;

	/**
	 * 签名结果
	 */
	@XmlElement(name = "SignatureValue", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String signatureValue;

	/**
	 * 签名Key信息内容
	 */
	@XmlElement(name = "KeyInfo", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String keyInfo;

	/**
	 * 证书编号
	 */
	@XmlElement(name = "KeyName", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String keyName;

	/**
	 * 证书数据
	 */
	@XmlElement(name = "X509Data", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String x509Data;

	/**
	 * 证书内容:包含公钥的证书信息PEM
	 */
	@XmlElement(name = "X509Certificate", namespace = NameSpace.NAMESPACE_CEB_URI)
	private String x509Certificate;

	public String getCanonicalizationMethod() {
		return canonicalizationMethod;
	}

	public void setCanonicalizationMethod(String canonicalizationMethod) {
		this.canonicalizationMethod = canonicalizationMethod;
	}

	public String getSignatureMethod() {
		return signatureMethod;
	}

	public void setSignatureMethod(String signatureMethod) {
		this.signatureMethod = signatureMethod;
	}

	public String getReference() {
		return reference;
	}

	public void setReference(String reference) {
		this.reference = reference;
	}

	public String getTransforms() {
		return transforms;
	}

	public void setTransforms(String transforms) {
		this.transforms = transforms;
	}

	public String getDigestMethod() {
		return digestMethod;
	}

	public void setDigestMethod(String digestMethod) {
		this.digestMethod = digestMethod;
	}

	public String getDigestValue() {
		return digestValue;
	}

	public void setDigestValue(String digestValue) {
		this.digestValue = digestValue;
	}

	public String getSignatureValue() {
		return signatureValue;
	}

	public void setSignatureValue(String signatureValue) {
		this.signatureValue = signatureValue;
	}

	public String getKeyInfo() {
		return keyInfo;
	}

	public void setKeyInfo(String keyInfo) {
		this.keyInfo = keyInfo;
	}

	public String getKeyName() {
		return keyName;
	}

	public void setKeyName(String keyName) {
		this.keyName = keyName;
	}

	public String getX509Data() {
		return x509Data;
	}

	public void setX509Data(String x509Data) {
		this.x509Data = x509Data;
	}

	public String getX509Certificate() {
		return x509Certificate;
	}

	public void setX509Certificate(String x509Certificate) {
		this.x509Certificate = x509Certificate;
	}

}
